home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / util / moni / Scout-src.lha / include / tblib.h < prev   
C/C++ Source or Header  |  2002-09-16  |  5KB  |  167 lines

  1. #ifndef TBLIB_H
  2. #define TBLIB_H 1
  3.  
  4. #ifndef SYS_CDEFS_H
  5.     #include "CompilerSpecific.h"
  6. #endif
  7.  
  8. #include <exec/types.h>
  9. #include <exec/ports.h>
  10. #include <devices/timer.h>
  11. #include <stdarg.h>
  12.  
  13. /* useful functions for MsgPorts and Signals */
  14. BOOL AllocPort( struct MsgPort *port );
  15. void FreePort( struct MsgPort *port );
  16. BYTE AllocSig( BYTE instead );
  17. void FreeSig ( BYTE sig );
  18.  
  19. /* useful functions for timerequests */
  20. void TimerDelay( struct timerequest *treq,
  21.                  ULONG secs,
  22.                  ULONG mics );
  23. void StartTimer( struct timerequest *treq,
  24.                  ULONG secs,
  25.                  ULONG mics );
  26. #define StopTimer(treq) GetMsg((treq)->tr_node.io_Message.mn_ReplyPort)
  27. void AbortTimer( struct timerequest *treq );
  28.  
  29. /* little-endian <-> big-endian conversions */
  30. UWORD i2m_word( UWORD d );
  31. ULONG i2m_long( ULONG d );
  32.  
  33. /* 64bit math functions */
  34. struct Integer64 {
  35.     ULONG i64_Upper;
  36.     ULONG i64_Lower;
  37. };
  38.  
  39. #ifdef SYS_CDEFS_H
  40.     /* dst += src */
  41.     void ASM add64 ( REG(a0) struct Integer64 *dst,
  42.                      REG(a1) struct Integer64 *src );
  43.  
  44.     /* dst -= src */
  45.     void ASM sub64 ( REG(a0) struct Integer64 *dst,
  46.                      REG(a1) struct Integer64 *src );
  47.  
  48.     /*
  49.         dst < src       -1
  50.         dst = src        0
  51.         dst > src        1
  52.     */
  53.     int ASM cmp64 ( REG(a0) struct Integer64 *dst,
  54.                     REG(a1) struct Integer64 *src );
  55.  
  56. #else
  57.     /* dst += src */
  58.     void ASM add64 ( REG(a0, struct Integer64 *dst),
  59.                      REG(a1, struct Integer64 *src) );
  60.  
  61.     /* dst -= src */
  62.     void ASM sub64 ( REG(a0, struct Integer64 *dst),
  63.                      REG(a1, struct Integer64 *src) );
  64.  
  65.     /*
  66.         dst < src       -1
  67.         dst = src        0
  68.         dst > src        1
  69.     */
  70.     int ASM cmp64 ( REG(a0, struct Integer64 *dst),
  71.                     REG(a1, struct Integer64 *src) );
  72. #endif
  73.  
  74. /* useful functions for strings */
  75. void _vsprintf( UBYTE *buffer,
  76.                 UBYTE *fmt,
  77.                 va_list args );
  78. void _sprintf( UBYTE *buffer,
  79.                UBYTE *fmt,... );
  80. BOOL _vsnprintf( UBYTE *buffer,
  81.                  LONG maxlen,
  82.                  UBYTE *fmt,
  83.                  va_list args );
  84. BOOL _snprintf( UBYTE *buffer,
  85.                 LONG maxlen,
  86.                 UBYTE *fmt,... );
  87. UBYTE *_strdup( UBYTE *str );
  88. UBYTE *_strdup_pool( UBYTE *str,
  89.                      APTR pool );
  90. void _strcat( UBYTE **str,
  91.               UBYTE *cat );
  92. void _strcatn( UBYTE *str,
  93.                UBYTE *cat,
  94.                ULONG maxlen );
  95. void b2cstr( LONG bstr,
  96.              UBYTE *cstr );
  97. void b2cstrn( LONG bstr,
  98.               UBYTE *cstr,
  99.               ULONG maxlen );
  100.  
  101. void ErrorMsg( UBYTE *title,
  102.                UBYTE *msg, ... );
  103.  
  104. /* function to check version of a library/device */
  105. ULONG CheckLibVersion( struct Library *lib,
  106.                        UWORD version,
  107.                        UWORD revision );
  108.  
  109. #define     CLV_NOT_OPEN        0
  110. #define     CLV_OLDER           1
  111. #define     CLV_NEWER_OR_SAME   2
  112.  
  113. /* function to get/set environment variables */
  114. LONG GetEnvVar( STRPTR name,
  115.                 STRPTR buffer,
  116.                 ULONG size,
  117.                 ULONG flags );
  118. BOOL SetEnvVar( STRPTR name,
  119.                 STRPTR buffer,
  120.                 ULONG size,
  121.                 ULONG flags,
  122.                 BOOL save );
  123. #define SetEnvVarSimple(name, buffer, save) SetEnvVar((name), (buffer), strlen((buffer)), GVF_GLOBAL_ONLY, (save))
  124.  
  125. /* function for pooled memory allocations */
  126.  
  127. #ifdef SYS_CDEFS_H
  128.     void * ASM tbCreatePool( REG(d0) ULONG flags,
  129.                              REG(d1) ULONG puddleSize,
  130.                              REG(d2) ULONG threshSize );
  131.     APTR ASM tbAllocPooled( REG(a0) APTR poolHeader,
  132.                             REG(d0) ULONG memSize );
  133.     APTR ASM tbAllocVecPooled( REG(a0) APTR poolHeader,
  134.                                REG(d0) ULONG memSize );
  135.     void ASM tbFreePooled( REG(a0) APTR poolHeader,
  136.                            REG(a1) APTR memory,
  137.                            REG(d0) ULONG memSize );
  138.     void ASM tbFreeVecPooled( REG(a0) APTR poolHeader,
  139.                               REG(a1) APTR memory );
  140.     void ASM tbDeletePool( REG(a0) void *poolHeader );
  141. #else
  142.     void * ASM tbCreatePool( REG(d0, ULONG flags),
  143.                              REG(d1, ULONG puddleSize),
  144.                              REG(d2, ULONG threshSize) );
  145.     APTR ASM tbAllocPooled( REG(a0, APTR poolHeader),
  146.                             REG(d0, ULONG memSize) );
  147.     APTR ASM tbAllocVecPooled( REG(a0, APTR poolHeader),
  148.                                REG(d0, ULONG memSize) );
  149.     void ASM tbFreePooled( REG(a0, APTR poolHeader),
  150.                            REG(a1, APTR memory),
  151.                            REG(d0, ULONG memSize) );
  152.     void ASM tbFreeVecPooled( REG(a0, APTR poolHeader),
  153.                               REG(a1, APTR memory) );
  154.     void ASM tbDeletePool( REG(a0, void *poolHeader) );
  155. #endif
  156.  
  157.  
  158. ULONG __stdargs DoSuperNew( struct IClass *cl,
  159.                             Object *obj,
  160.                             Tag tag1, ... );
  161. APTR MakeButton( UBYTE *txt );
  162. APTR MakeCheckmark( UBYTE *txt );
  163. #define MakeHook(hookname, funcname)    static struct Hook hookname = { {NULL, NULL}, (void *)funcname, NULL, NULL }
  164.  
  165. #endif
  166.  
  167.